const person = { name: 'ifer', age: 18 }

// 这样用的是 JS 中的判断类型的 typeof
/* const a = typeof person
console.log(a) */

// 这种用的是 TS 中获取类型的 typeof
type TPerson = typeof person
// 下面写法不对，TPerson 是一个类型，类型一旦编译完之后，就被擦除掉了，所以类型不能当做值去使用/打印
// console.log(TPerson)

const o: TPerson = {
  name: 'ifer',
  age: 18,
}

const p = { x: 1, y: 2 }
// function formatPoint(point) {} // 没有提示
/* function formatPoint(point: { x: number; y: number }) {
  point.x // 具有提示
} */

function formatPoint(point: typeof p) {
  point.x
}
formatPoint(p)
